#include <iostream>

/**
 *　c++ 使用函数指针的方式来把函数作为参数传递
 **/

using namespace std;

double betsy(int);
double pam(int);

void estimate(int lines, double (*pf)(int));


int main(){
    int code;
    cout<<"How many lines of code do you need?";
    cin >> code;
    cout<<"Here's Betsy's estimate:\n";
    estimate(code, betsy);
    cout<<"Here's Panm's estimate:\n";
    estimate(code, pam);
    return 0;
}


double betsy(int lns){
    return 0.05*lns;
}


double pam(int lns){
    return 0.03 * lns + 0.0004 * lns * lns;
}


void estimate(int lines, double (*pf)(int)){
    cout<<lines<<"lines wile take";
    cout<< (*pf)(lines)<<"hour(s)\n";
}
